package com.gqj.meter.mapper;

import com.gqj.meter.domain.MdInTaskDetails;

import java.util.List;

/**
 * 出入库明细Mapper接口
 *
 * @author lxq
 * @date lxq-02-10
 */
public interface MdInTaskDetailsMapper {
    /**
     * 查询出入库明细
     *
     * @param inTaskDetailsId 出入库明细主键
     * @return 出入库明细
     */
    public MdInTaskDetails selectMdInTaskDetailsByInTaskDetailsId(Long inTaskDetailsId);

    /**
     * 查询出入库明细列表
     *
     * @param mdInTaskDetails 出入库明细
     * @return 出入库明细集合
     */
    public List<MdInTaskDetails> selectMdInTaskDetailsList(MdInTaskDetails mdInTaskDetails);

    /**
     * 查询出入库明细列表
     *
     * @param mdInTaskDetails 出入库明细
     * @return 出入库明细集合
     */
    public List<MdInTaskDetails> exportMdInTaskDetailsListExcel(MdInTaskDetails mdInTaskDetails);

    /**
     * 查询出入库明细数量
     *
     * @param mdInTaskDetails 出入库明细
     * @return 出入库明细数量
     */
    public int selectMdInTaskDetailsCount(MdInTaskDetails mdInTaskDetails);

    /**
     * 查询执行出入库明细数量
     *
     * @param mdInTaskDetails 出入库明细
     * @return 出入库明细数量
     */
    public MdInTaskDetails selectCarryMdInTaskDetailsCount(MdInTaskDetails mdInTaskDetails);

    /**
     * 新增出入库明细
     *
     * @param mdInTaskDetails 出入库明细
     * @return 结果
     */
    public int insertMdInTaskDetails(MdInTaskDetails mdInTaskDetails);

    /**
     * 新增出入库明细
     *
     * @param list 出入库明细
     * @return 结果
     */
    public int insertMdInTaskDetailsBatch(List<MdInTaskDetails> list);

    /**
     * 修改出入库明细
     *
     * @param mdInTaskDetails 出入库明细
     * @return 结果
     */
    public int updateMdInTaskDetails(MdInTaskDetails mdInTaskDetails);

    /**
     * 删除出入库明细
     *
     * @param inTaskDetailsId 出入库明细主键
     * @return 结果
     */
    public int deleteMdInTaskDetailsByInTaskDetailsId(Long inTaskDetailsId);

    /**
     * 删除出入库明细
     *
     * @param inTaskNo 出入库任务编号
     * @return 结果
     */
    public int deleteMdInTaskDetailsByInTaskNo(String inTaskNo);

    /**
     * 批量删除出入库明细
     *
     * @param inTaskDetailsIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteMdInTaskDetailsByInTaskDetailsIds(Long[] inTaskDetailsIds);

    /**
     * 查询本周入库数量
     *
     * @param mdInTaskDetails 出入库明细
     * @return 结果
     */
    public int getThisWeekInNum(MdInTaskDetails mdInTaskDetails);

    /**
     * 查询上周入库数量
     *
     * @param mdInTaskDetails 出入库明细
     * @return 结果
     */
    public int getLastWeekInNum(MdInTaskDetails mdInTaskDetails);

    /**
     * 查询本月入库数量
     *
     * @param mdInTaskDetails 出入库明细
     * @return 结果
     */
    public int getThisMonthInNum(MdInTaskDetails mdInTaskDetails);

    /**
     * 查询上月入库数量
     *
     * @param mdInTaskDetails 出入库明细
     * @return 结果
     */
    public int getLastMonthInNum(MdInTaskDetails mdInTaskDetails);
}
